package com.zjdiepu.www.util;

import java.util.Iterator;
import java.util.Map;

import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;

import com.zjdiepu.www.base.core.ApiResponse;
import com.zjdiepu.www.base.enums.type.ResultFlagType;
import com.zjdiepu.www.common.util.CollectionInitUtil;

/**
 * 项目名称：dpqc-parent-manager-base <br/> 
 * 类名称：ValidateHelper <br/>  
 * 类描述： session对象获取工具<br/>    
 * 创建人：xiongxiaotun <br/> 
 * 创建时间：2017年4月7日 下午4:12:07  <br/>   
 * 修改人：xiongxiaotun <br/> 
 * 修改时间：2017年4月7日 下午4:12:07   <br/>  
 * 修改备注：    <br/> 
 * @version V1.0   <br/>
 */
public class ValidateHelper {
	/**
	 * @author xiongxiaotun@126.com
	 * @time 2017年4月7日 下午11:54:21
	 * @since 1.0.0
	 * @update
	 * @param bindingResult
	 * @return
	 */
	public static ApiResponse getErrors(BindingResult bindingResult){
		if(null == bindingResult) {
			return null;
		}
		if(!bindingResult.hasErrors()) {
			return null;
		}
		StringBuffer stringBuffer = new StringBuffer();
		Iterator<ObjectError> iterator = bindingResult.getAllErrors().iterator();
		while (iterator.hasNext()) {
			ObjectError objectError = iterator.next();
			//收集错误信息               
			stringBuffer.append(objectError.getDefaultMessage());
			if(iterator.hasNext()){
				stringBuffer.append(",");
			}
		}
		return ApiResponse.fail(ResultFlagType.PARAM_INVALID.getCode(), stringBuffer.toString());
	}
	/**
	 * @author xiongxiaotun@126.com
	 * @time 2017年4月7日 下午11:54:21
	 * @since 1.0.0
	 * @update
	 * @param bindingResult
	 * @return
	 */
	public static Map<String, Object> getMapErrors(BindingResult bindingResult) {
		if(null == bindingResult) {
			return null;
		}
		if(!bindingResult.hasErrors()) {
			return null;
		}
		StringBuffer stringBuffer = new StringBuffer();
		Iterator<ObjectError> iterator = bindingResult.getAllErrors().iterator();
		while (iterator.hasNext()) {
			ObjectError objectError = iterator.next();
			//收集错误信息               
			stringBuffer.append(objectError.getDefaultMessage());
			if(iterator.hasNext()){
				stringBuffer.append(",");
			}
		}
		Map<String, Object> maps = CollectionInitUtil.emptyMap();
		maps.put("flag",ResultFlagType.PARAM_INVALID.getCode());
		maps.put("message",stringBuffer.toString());
		return maps;
	}
}
